iT邦幫忙

2024 iThome 鐵人賽

DAY 25
0
Software Development

30 天打造 RPA 自動化流程:Power Automate 從入門到實戰系列 第 25

Power Automate Desktop:HTTP Request 與呼叫指令碼

  • 分享至 

  • xImage
  •  

一、前言

如果是已經相當熟悉程式語言的軟體工程師,在剛接觸 RPA 時常會有的問題可能會是這樣的工具會不會反而限制了使用場景?

個人淺見,這項問題的答案是:不會。原因是 Power Automate Desktop 雖然是個「自動化流程工具」,然而它在設計時其實也預先設想了許多在 PAD 「動作」中無法滿足的情境,可以如何透過最強大的「寫程式」這件事來補足。

二、HTTP Request(叫用 Web 服務)

在自動化流程的設計中,能夠與外部服務進行資料交換,或是運行特定的指令來執行複雜的邏輯,是提升流程靈活性的重要手段。PAD 提供了兩個強大的工具:HTTP Request 和指令碼功能。透過這兩個功能,使用者能夠達成與外部系統更完整的整合,以及運作自定義的情境和操作。

Power Automate Desktop 的 HTTP Request 功能允許你與外部的 Web 服務或 API 進行溝通。這對於需要從外部服務取得資料或將資料傳送至遠端伺服器的自動化流程來說非常有用。

就像一般 API 串接一樣,可以透過 PAD 的 HTTP Request 的功能從各種 API 獲取即時資料,例如天氣、匯率、股票價格等,在 PAD 中的此動作開發介面也提供了基本框架,讓不熟悉的使用者可以更好上手。
https://ithelp.ithome.com.tw/upload/images/20241007/20169459E17QxEuPzC.png
https://ithelp.ithome.com.tw/upload/images/20241007/201694595WvDBediVq.png

三、指令碼功能

另外一個要分享的功能是指令碼,除了串接 API 讓使用情境更完整、穩定之外,PAD 也提供了輸入指令碼的功能,讓使用者可直接透過輸入程式碼的方式進行自動化情境的串聯。

一般來說常見情況可以分為兩種:

複雜的數據處理: 有些自動化工作流程可能需要進行更複雜的數據運算或處理,這超出了 Power Automate Desktop 的內建動作所能涵蓋的範圍。在這種情況下,使用 JavaScript 或 Python 指令碼能夠幫助你進行自定義的邏輯運算和資料處理。例如,當你需要對資料進行多層次的驗證、排序、篩選或計算時,使用指令碼能夠讓你更靈活地應對這些需求。

網頁元素難以抓取: 在進行網頁自動化時,有時候使用 Power Automate Desktop 的 UI 元素選擇器(Selector)功能可能無法穩定或準確地抓取某些動態網頁上的元素,特別是當這些網頁使用了複雜的 JavaScript 或 Ajax 來動態生成內容時。在這種情況下,使用 JavaScript 可以直接對網頁元素更精確的控制。這讓你可以繞過使用 Selector 抓取困難的限制,精準地點擊按鈕、提取資料,或是進行其他互動操作。

目前 PAD 提供的指令碼功能包括:DOS 命令、VBScript、JavaScript、PowerShell 指令碼、Python 指令碼、.NET 指令碼,在自動化流程中比較基本、容易使用到的語法大致都有涵蓋了。
https://ithelp.ithome.com.tw/upload/images/20241007/20169459e4Pzrfj7B7.png
https://ithelp.ithome.com.tw/upload/images/20241007/201694595FMGBCmJho.png

四、小結

對於一般使用者的自動化需求來說,Power Automate Desktop 的內建功能已經足夠應付大多數情境。本篇介紹的 HTTP Request 和指令碼功能則屬於進階選項,提供給有需要的讀者參考。當你在面對更複雜的工作流程,或發現內建動作無法滿足需求時,可以考慮使用這些指令碼功能來撰寫自定義的內容,以更靈活地解決問題。

文章同步刊載於此


上一篇
Power Automate Desktop:透過 VBA 執行 Excel 巨集
下一篇
Power Automate Desktop:流程控制與錯誤處理
系列文
30 天打造 RPA 自動化流程:Power Automate 從入門到實戰26
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言